Preheat the oven to 375°F. Add the diced potatoes to a large pot and cover them plus two inches with cold water. Cover, bring to a boil, and boil for about 15 minutes or until the potatoes are fork tender.
Drain the potatoes and let them sit in the cooking pot uncovered for 10 minutes to allow excess steam to escape.
Add the butter, milk, cheese, salt, and pepper.
Mash until smooth.
While the potatoes are cooking, make the filling. In a large skillet over medium heat, melt the butter, then brown the ground beef, breaking it up into crumbles until there is no pink left. 10 minutes.
Add the onions and continue to cook until softened and translucent, occasionally stirring for 10 minutes.
Add the garlic, garlic powder, onion powder, salt, and pepper. Stir everything together and cook for 30 seconds.
Add the flour, stir and cook for 1 minute.
Next, add the stock and Worcestershire sauce, stir to combine.
Add the frozen veggies and mix them in, bring the mixture to a simmer then take off the heat.
Add the filling to a 9x13 baking dish in an even layer.
Top with the mashed potatoes and smooth out the top.
Bake for 40-45 minutes until dark golden brown on top and bubbly. Let cool for 15 minutes, then serve with parsley if using.